home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Coverdisks / CDU / V3D09.D64 / file recovery (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.0 KB  |  109 lines

  1. 0 REM        ******************
  2. 1 REM    ******              ******
  3. 2 REM  ****         FILE         ****
  4. 3 REM ****    RECOVERY PROGRAM    ****
  5. 4 REM ****                        ****
  6. 5 REM ****  WRITTEN BY M.CARROLL  ****
  7. 6 REM  ****      MARCH 1990      ****
  8. 7 REM    ******              ******
  9. 8 REM        ******************
  10. 9 :
  11. 10 SYS65409:POKE51,0:POKE52,90:POKE55,0
  12. 20 POKE56,90:CLR:DIMD(35,20),S(255)
  13. 30 POKE54296,0:SYS65418:FORT=1TO35
  14. 40 READA:FORB=0TOA:D(T,B)=-1:NEXT
  15. 50 PRINT".";:NEXT:POKE53265,0:D(18,0)=0
  16. 60 DATA20,20,20,20,20,20,20,20,20,20
  17. 70 DATA20,20,20,20,20,20,20,0,18,18
  18. 80 DATA18,18,18,18,17,17,17,17,17,17
  19. 90 DATA16,16,16,16,16
  20. 100 POKE53280,0:POKE53281,0:POKE808,251
  21. 110 FORA=679TO744:READB:POKEA,B:NEXT
  22. 120 PRINT"[147][153]"TAB(9)"[198]ILE [210]ECOVERY [208]ROGRAM."
  23. 130 PRINTTAB(9)"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  24. 140 PRINT"[211]PECIFY START ADDRESSES TO BE SEARCHED  FOR, USE [210][197][212][213][210][206] TO CONFIRM."
  25. 150 POKE53265,27:OPEN1,0,0:INPUT#1,A$:CLOSE1:A$=A$+" "
  26. 160 IFLEN(A$)/5<>INT(LEN(A$)/5)THEN120
  27. 170 DIMA(LEN(A$)/5-1):N=0
  28. 180 FORA=1TOLEN(A$)-4STEP5
  29. 190 B$=MID$(A$,A,4)
  30. 200 FORC=0TO3:A(N)=A(N)*16
  31. 210 A(N)=A(N)+ASC(MID$(A$,A+C,4))-48+7*(ASC(MID$(A$,A+C,4))>64):NEXT
  32. 220 N=N+1:NEXT:N=N-1
  33. 230 SYS65511:PRINT:POKE198,0
  34. 240 PRINT"[147][208]RESS ANY KEY TO START FORMATTING A     FRESH DISC...":POKE198,0
  35. 250 WAIT198,1:POKE198,0
  36. 260 PRINT"[147][207]KAY...":T1=1:T2=1:B1=0:B2=0
  37. 270 OPEN15,8,15,"U;"
  38. 280 PRINT#15,"M-W"CHR$(105)CHR$(0)""
  39. 290 PRINT#15,"N0:RECOVERED FILES,RF"
  40. 300 GET#15,A,A$,B,B:IFATHEN290
  41. 310 FORA=0TO498STEP166
  42. 320 PRINT"[147][201]NSERT DAMAGED DISC AND PRESS [211][208][193][195][197]..."
  43. 330 POKE198,0:WAIT198,1:POKE198,0
  44. 340 PRINT"[147][207]KAY - READING FROM DISC..."
  45. 350 FORB=0TO165
  46. 360 IFNOT(D(T1,B1))THENB=B-1:GOTO410
  47. 370 OPEN5,8,5,"#"
  48. 380 PRINT#15,"U1:"5;0;T1;B1
  49. 390 PRINT#15,"B-P:5,0"
  50. 400 POKE698,B+90:SYS679:CLOSE5
  51. 410 B1=B1+1:IFB1=21THENB1=0:T1=T1+1
  52. 420 NEXT
  53. 430 PRINT"[147][201]NSERT FRESH DISC AND PRESS [211][208][193][195][197]..."
  54. 440 POKE198,0:WAIT198,1:POKE198,0
  55. 450 PRINT"[147][207]KAY - WRITING TO DISC..."
  56. 460 FORB=0TO165
  57. 470 IFNOT(D(T2,B2))THENB=B-1:GOTO520
  58. 480 OPEN5,8,5,"#":POKE726,90+B
  59. 490 PRINT#15,"B-P:5,0":SYS712
  60. 500 PRINT#15,"U2:"5;0;T2;B2
  61. 510 CLOSE5
  62. 520 B2=B2+1:IFB2=21THENB2=0:T2=T2+1
  63. 530 NEXT:NEXT
  64. 540 DATA162,5,32,198,255,160,0,32,207,255,72,120,169,,133,1,104,153,,,169,55
  65. 550 DATA133,1,88,200,208,235,162,,76,198,255,162,5,32,201,255,160,,120,169,,133
  66. 560 DATA1,185,,,72,169,55,133,1,88,104,32,210,255,200,208,235,162,3,76,201,255
  67. 570 PRINT"[147][207]KAY - SEARCHING DISC..."
  68. 580 OPEN5,8,5,"#"
  69. 590 PRINT#15,"U1:5,0,18,0"
  70. 600 PRINT#15,"B-P:5,4"
  71. 610 FORA=0TO139:PRINT#5,CHR$(0);
  72. 620 NEXT:PRINT#15,"U2:5,0,18,0"
  73. 630 CLOSE5:T=1:B=-1:S=1
  74. 640 FORA=0TO255:S(A)=0:NEXT:S(1)=255:FE=0:GOTO660
  75. 650 IFD(T,B)THEN690
  76. 660 B=B+1:IFB=21THENB=0:T=T+1
  77. 670 IFT=36THEN890
  78. 680 GOTO650
  79. 690 OPEN5,8,5,"#"
  80. 700 PRINT#15,"U1:"5;0;T;B
  81. 710 PRINT#15,"B-P:5,2"
  82. 720 GET#5,A$,B$,C$,C$:CLOSE5
  83. 730 SA=ASC(A$+CHR$(0))+ASC(B$+CHR$(0))*256:BS=B$=C$
  84. 740 A=0
  85. 750 IFSA<>A(A)THEN870
  86. 760 F$=RIGHT$("00"+RIGHT$(STR$(FE+S*8-8),LEN(STR$(FE+S*8-8))-1),3)
  87. 770 A$="-M/C AT":IFBSTHENA$="-BAS AT"
  88. 780 F$="[130]"+CHR$(T)+CHR$(B)+F$+A$+RIGHT$("    "+STR$(SA),6)
  89. 790 FORA=1TO19:S(FE*32+1+A)=ASC(MID$(F$,A,1)):NEXT
  90. 800 FE=(FE+1)AND7:IFFETHEN870
  91. 810 S(0)=18:S(1)=S+1
  92. 820 OPEN5,8,5,"#":PRINT#15,"B-P:5,0"
  93. 830 FORA=0TO255:PRINT#5,CHR$(S(A));
  94. 840 NEXT:PRINT#15,"U2:"5;0;18;S
  95. 850 CLOSE5:S=S+1:IFS<19THEN640
  96. 860 PRINT"[147][206]OT ENOUGH ROOM!":GOTO900
  97. 870 A=A+1:IFNOT(N<A)THEN750
  98. 880 GOTO660
  99. 890 PRINT"[147][207]KAY - FINISHED."
  100. 900 OPEN5,8,5,"#"
  101. 910 PRINT#15,"B-P:5,0"
  102. 920 FORA=0TO255:PRINT#5,CHR$(S(A));
  103. 930 NEXT:PRINT#15,"U2:"5;0;18;S
  104. 940 CLOSE5:CLOSE15
  105. 950 PRINT"[157]"S*8-8+FE"FILES FOUND."
  106. 960 POKE198,10:FORA=631TO640
  107. 970 READB:POKEA,B:NEXT:POKE808,237
  108. 980 DATA76,79,65,68,34,36,34,44,56,13
  109.